﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using grupo2DEWStudio7i.Dominio;

namespace grupo2DEWStudio7i.Negocio
{
    interface IAdministracionService
    {

        #region Operaciones de negocio
        Sala InscribirSala(string nombre, int localCodigo,
            int capacidad, string caracteristicas);

        ICollection<Sala> ListarXBusquedaReserva(string nombre, int? codigolocal,
            int? cantidadInstrumento, string tipoInstrumento,
            string servicioDescripcion, int? capacidad);
        
        Cliente RegistrarCliente(string nombre, string dni, string clave, string correo, string fecnac);

        Instrumento RegistrarInstumento(string tipo, string marca,
            string modelo, int añofabri, string caracteristicas, decimal costo);

        Servicio RegistrarServicio(string descripcion, int costohora);
        #endregion

        #region Métodos de soporte para entidad Local
        Local CrearLocal(Local localACrear);
        Local ObtenerLocal(int codigo);
        Local ModificarLocal(Local localAModificar);
        void EliminarLocal(Local localAEliminar);
        ICollection<Local> ListarLocales();
        ICollection<Local> ListarLocalesXNombre(string nombre);
        #endregion

        #region Métodos de soporte para entidad Sala
        Sala ObtenerSala(int codigo);
        ICollection<Sala> ListarSalas(string nombre, int? localCodigo,
            int? capacidad, string caracteristicas);
        #endregion

        #region Métodos de soporte para entidad Instrumento
        Instrumento ObtenerInstrumento(int codigo);
        ICollection<Instrumento> ListarInstrumento();
        ICollection<Instrumento> ListarInstrumentosXTipo(string tipo);
        ICollection<Instrumento> ListarInstrumentosXSala(int codigoSala);
        #endregion

        #region Métodos de soporte para entidad Cliente
        Cliente ObtenerCliente(int codigo);
        ICollection<Cliente> ListarCliente();
        ICollection<Cliente> ListarXBusqueda(int codigo, string nombre, string dni, string fecnac, string clave, string correo);
        #endregion

        #region Métodos de soporte para entidad Servicio
        Servicio ObtenerServicio(int codigo);
        ICollection<Servicio> ListarServicio();
        ICollection<Servicio> ListarxBusqueda(int codigo, string descripcion, int costohora);
        ICollection<Servicio> ListarServiciosXSala(int codigoSala);
        #endregion

    }
}
